Today's network links carry vast amounts of information. High bandwidth applications supported by these network links include, for example, streaming video, streaming audio, and large aggregations of voice traffic. In the future, network bandwidth demands will increase. Certain applications, such as those that stream audio and video, can generate a large amount of network traffic due to sending such a transmission to multiple subscribers. In order to help decrease network traffic load due to such applications, multicast extensions to network protocols have been developed.
Multicast protocols enable multicast data stream transmission (i.e., one-to-many connections) by replicating a data packet in the multicast data stream close to the destination of that data packet, obviating the need for multiple unicast connections for the same purpose, thereby saving network bandwidth and improving throughput. Upon destination address (GDA) of the packet and determine whether subscribers to the multicast data stream are connected directly or indirectly to the network node. In a network providing multiple multicast sources for the same GDA, a network node can also examine the source of a packet and determine whether any subscribers to the multicast group and the specific source are connected directly or indirectly to the network node. The network node can then replicate the multicast data packet as needed and transmit the multicast data packet to any connected subscriber.
FIG. 1 is a simplified block diagram of a L2 network device 100 (e.g., a network switch or bridge). The L2 network device provides ports 110(1)-(N), wherein a network frame arriving at any port can be directed to any other port connected to the device as determined by an examination of the frame's destination address. Connected to each port are network elements 120(1,1)-(N,M). In a typical network environment, each network element 120(1,1)-(N,M) has a unique media access control (MAC) address. L2 network device switch 100 can learn the MAC addresses of network elements 120(1,1)-(N,M) as those network elements transmit frames to each other via the L2 network device. Each frame transmitted by a network element contains a source MAC address that L2 device 100 can read and associate with a port 110(1)-(N). Such element-port information is stored in an address table. Such a table has been called an L2 Address Table (referring to Layer 2 of the Open System Interconnection networking framework for implementing protocols, which is also called the data link layer) or a MAC Address Table.
FIG. 2 illustrates a L2 Address Table showing element-port associations of L2 network device 100. Each entry in the table has an associated index 210. The number of entries in the table can be equal to the number of nodes connected to L2 network device 100 (e.g., P). Each entry in the table contains a MAC address 220 that corresponds to a source MAC address found in frames transmitted by each network element (e.g., SMAC (120(1-1)) is the source MAC address for node 120(1,1)). Each L2 Address Table entry also includes a port 230 corresponding to the network element, wherein the association is made by L2 network device 100 when it receives a frame from the network element. Information linking a network element address with a particular port is related to the hardware of the network element (e.g., a network interface) and is typically static in a L2 Address Table, unless a network element is physically removed or moved from one port to another port on the L2 network device.
A L2 Address Table cannot automatically be populated with multicast subscriber destinations in the same way as element-port designations. This is because a multicast GDA cannot be a source MAC address. Portions of Layer 3 multicast GDAs are included in a L2 Address Table through the use of software protocols such as the internet group management protocol (IGMP). When a network element wishes to subscribe to a multicast transmission, a special IGMP protocol frame is transmitted as a multicast “join” request. An IGMP-enabled L2 network device will have “snooping” software running on the switch to read such a frame and build a corresponding entry for the L2 Address Table. Such an entry can relate a form of the multicast GDA with ports that are connected to subscribing network elements.
A port on a L2 network device can be coupled by a network link to a network router, which can then be subsequently coupled directly or indirectly to other network elements. Since one or more of those network elements can be a downstream subscriber for a multicast data stream, any port of an L2 network device 100 that is connected to the router will automatically receive all multicast data streams being transmitted through the L2 network device. Thus, a router connected to a L2 network device will always receive every multicast flow being transmitted through the L2 device.
In the past, a first router has been able to communicate with a second router between the first router and a multicast source whether the first router is connected to a subscribing destination for a multicast data stream from the source. Upon receiving a multicast data packet, the first router, upon verifying that it is not connected to any subscribers for that multicast flow, can send a “prune” message to the second router through a protocols such as Router Group Management Protocol (RGMP) or Protocol Independent Multicast (PIM) snooping. In RGMP and PIM snooping, upon receiving such a prune message, the second router will then no longer transmit multicast data packets for that stream to the first router. Through the use of such pruning, network bandwidth is conserved since fewer data packets are being transmitted on the network, and processing overhead on the first router is reduced since the first router no longer has to process packets for that multicast data stream. But such protocols are limited in that they limit multicast transmission based solely on the multicast group destination address, and do not provide the capacity to limit transmission based upon the source of the transmission.
Another protocol used to control multicast flooding is multicast source notification of interest protocol (MSNIP). MSNIP operates between a first-hop router and a source of a multicast transmission. The first-hop router informs the multicast source to transmit a multicast data stream only with the presence of a receiver. While MSNIP can control multicast flooding on a source-by-source basis, MSNIP requires a source-based component to respond to messages from the first-hop router.
Such pruning capability as described above for router-to-router communication and router-to-source communication has not heretofore been available for router-to-bridge (L2 device) communication. As stated above, an L2 network device transmits all multicast data streams on each port coupled to a router on that L2 device. For reasons such as conserving network bandwidth and decreasing processing overhead on a connected router, it is therefore desirable for the router to be able to inform the L2 network device, which is between that router and source of a multicast data stream that the router has no subscribers to multicast transmission from the source. It is further desirable for the L2 network device to then cease transmitting multicast data streams to that router from the indicated multicast source.